home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 20
/
Cream of the Crop 20 (Terry Blount) (1996).iso
/
program
/
recio214.zip
/
HISTORY
< prev
next >
Wrap
Text File
|
1996-06-14
|
12KB
|
260 lines
recio, Version 2.14, Release June 14, 1996.
Copyright (C) 1994-1996, William Pierpoint.
HISTORY OF RECIO LIBRARY
06/14/96 - vers. 2.14
Added right padding to rcputt(), rcputtm() and rcputs() functions.
09/04/95 - vers. 2.13
Fixed bugs in rsetrecstr(), rcgett(), and rgett() functions.
Revised rfixt() function.
Revised algorithm within sftotm() function in rgett.c file to do
a better job of parsing incomplete time data.
Added macro RECBEGYR and function rsetbegyr(). These control the
interpretation of time data that is read by the %y format. RECBEGYR
defaults to 1951. In other words, the %y input corresponds to the
years from 1951 to 2050. Note that time_t type variables may not
be able to represent the complete range, but that you should not have
this limitation if using struct tm type variables. To represent a
different range of years, you can change the beginning year of the
range by using the rsetbegyr function.
Examples: 1/1/51 -> Jan 1, 1951
12/31/99 -> Dec 31, 1999
1/1/00 -> Jan 1, 2000
12/31/50 -> Dec 31, 2050
Changed EINVDAT to EDOM for ANSI-C compatibility.
Changed abort() to exit(EXIT_FAILURE) so that streams are flushed
upon abnormal program termination.
Improved portability by moving all compiler dependencies to recio.h.
01/29/95 - vers. 2.12
New improved field parsing engine derived from regular expression
specification is discussed in section 2.4 of design.txt. Primary
changes are:
* When the field delimiter is not whitespace and the text
delimiter is whitespace (or anytime the text delimiter
is not used even if defined as non-whitespace), leading
and lagging whitespace are not trimmed from a string field.
* When the text delimiter is not whitespace, the text
delimiter can be included as part of a field provided it
is not followed by the field termination sequence. The
field termination sequence consists of the text delimiter
followed by optional whitespace followed by either the
field delimiter or the end of the record. To illustrate
for comma delimited fields with quoted text, the following
is only one field: "K&R wrote, "Hello, World"".
* When the text delimiter is the double quote character,
quoted text within the field is treated as a single word.
The comma-delimited example "Use case "1", okay?" parses
to one field.
* Fixed a bug in how the rnumfld function counts fields.
When the field delimiter is whitespace, the rnumfld function
would count any trailing whitespace in the last field as an
extra empty field. The rnumfld function no longer counts any
empty fields when whitespace is used as the field separator
because empty fields are undetectable in this situation.
An expanded discussion of the ltoa and ultoa functions can now be
found in section 3.6 of design.txt. Included simple ltoa and ultoa
code for compilers that don't have these functions.
12/26/94 - vers. 2.11
Fixed some typos in spec.txt. Added section 3.6 to design.txt.
Made some minor stylistic improvements to the source code.
11/2/94 - vers. 2.10
Added new time fields. Can input and output times using either
the time_t or struct tm types and in various user specified formats.
New modules are rgett.c, rputt.c, rcgett.c, and rcputt.c.
Time formats are specified using a subset of the specifiers
from the ANSI-C strftime function. Supported specifiers are:
%d - day of month (1-31)
%H - hour from 24-hour clock (0-23)
%m - month (1-12)
%M - minute (0-59)
%s - second (0-61)
%y - year without century (00-99)
%Y - year with century (e.g. 1994)
The default time format is "%m/%d/%y". Can override the format on
any record stream with a new format using the rsettmfmt function.
Added new warning macro constant R_WTMFMT. R_WTMFMT indicates that
the time data was incomplete (i.e. any element of time format not
matched against data). Also new macro constants R_WFAULT and R_EFAULT
added for use by application specific functions.
Data written to an output stream can now be written without field and
text delimiters. Just set the field and text delimiters to the null
character.
10/10/94 - vers 2.04
Added new string functions scntrimbegs, scntrimends, and scntrims
to rstr.c file.
Fixed minor bug in _rfldstr function in rget.c file.
Changed return type for rskipfld and rskipnfld to unsigned, and
num parameter in rskipnfld to unsigned. Functions now return
zero on error.
Added new functions rnumfld, rgetfldpos, and rsetfldpos to rget.c
file.
10/02/94 - vers 2.03
Eliminated error return values for most functions. This promotes a
programming style that makes use of the callback error function as the
preferred way to handle errors. For lint users, reduces the number of
warnings.
Added macro ristxtfld. If ristxtfld macro returns non-zero, then the
current field (the field most recently input or output) was quoted with
the text character delimiter (if not white space). If ristxtfld macro
returns zero, then the current field was not quoted.
Added macro rresetrec. Use of the rresetrec macro allows you to read
the fields from the record buffer multiple times. For example, you
could first use rskipnfld to determine the number of fields, then use
rresetrec to reset back to the beginning of the record buffer, and
finally read in each field until you have reached the number of fields.
Added modules remsg.c and rwmsg.c containing simple callback functions
rerrmsg and rwarnmsg for reporting errors and warnings respectively.
You may wish to use these functions during the initial prototyping stage
of software development. In the later stages of development, you can
substitute more robust error and warning message functions. Also added
the rinit function that registers the error and warning message functions.
It just calls rseterrfn and rsetwarnfn, but may be easier to remember.
Added module rstr.c. This module contains a small set of string functions
that are needed by rget.c. You may also find them useful in your programs.
See section 7 of the ascii file USAGE.TXT for more details.
05/02/94 - vers 2.02
Handling of errno made more reliable and more portable. Some Borland C
conversion functions clear errno first, some do not. Where errno is
checked after a conversion, cleared errno before conversion.
Reduced code size of numeric field function modules by one-third by
eliminating the macro emulation of function templates. Number of header
files reduced from nine to one.
04/22/94 - vers 2.01
Added rsetrecstr function to rget.c. Sometimes it is handy to stuff a
record buffer with your own string, then let the field input functions
scan it.
Added mode check to several rget.c functions to ensure an error will be
generated if these input functions are mistakenly used in an output stream.
Fixed bugs in rwarn.c. Warnings were not being cleared or reset correctly.
04/15/94 - vers 2.00
RECIO can now write as well as read. Over 25 new functions added.
New record streams that are always open are recout, recerr, and recprn.
New predefined context numbers are RECOUT, RECERR, and RECPRN.
ROPEN_MAX increased from 5 to 8.
New symbolic error constants are:
R_EINVMOD - tried to read file opened in write mode, or vice versa.
R_ENOPUT - unable to output data.
New callback warning function and associated warning functions.
Now all empty data strings are trappe